package com.jianyu.java.ex;

import java.util.Scanner;


/**
 * 赌数游戏
 * <p>
 * 提供三个1-6的随机数，作为掷骰子得到的点数。（赋值） （庄家）
 * <p>
 * 如果各个点数相同，则为豹子。（判断）
 * 如果三个骰子点数和，小于或等于9，则为“小”。
 * 如果三个骰子点数和，大于9，则为“大”。
 * <p>
 * 用户随机选择：押大、押小或者押豹子。（玩家）
 * 通过判断，输出玩家是否押正确，并输出当前三位数字的值。
 * 如果正确三次，结束游戏。（循环）while\for\do-while
 * <p>
 * 提示：
 * 随机数可以采用 (int) (Math.random() * 6 + 1); 产生，math.random()本身返回0～1d的double类型数值，使用强转转成int类型。
 * 获取用户输入可以采用Scanner input = new Scanner(System.in);每次需要获取用户输入时，直接使用 String guess = input.next();
 * Scanner使用前需要import java.util.Scanner;
 */
public class ThorwTheDice1 {
    public static void main(String[] args) {
        Game game = new Game();
        game.start();
    }
}

class Dice {
    public static int Thorw() {
        return (int) (Math.random() * 6 + 1);
    }
}

class Player {
    public boolean guess(String diceResult) {
        System.out.println("请押宝，买定离手：(请选择：大，小，豹子)");
        Scanner input = new Scanner(System.in);
        String guess = input.next();
        return guess.equals(diceResult);
    }
}


class Game {
    private int rightNum;

    public void start() {
        rightNum = 0;
        while (rightNum < 3) {
            int randomDice1 = Dice.Thorw();
            int randomDice2 = Dice.Thorw();
            int randomDice3 = Dice.Thorw();
            String diceResult = Judge(randomDice1, randomDice2, randomDice3);
            Player player = new Player();
            if (player.guess(diceResult)) {
                rightNum++;
                System.out.println("猜对了，三位数字分别为" + randomDice1 + "," + randomDice2 + "," + randomDice3);
            } else {
                System.out.println("猜错了，三位数字分别为" + randomDice1 + "," + randomDice2 + "," + randomDice3);
            }
        }
        System.out.println("正确三次,游戏结束" );
    }
    public String Judge(int diceNum1, int diceNum2, int diceNum3) {
        int sumDice = diceNum1 + diceNum2 + diceNum3;
        if (diceNum1 == diceNum2 && diceNum1 == diceNum3) {
            return "豹子";
        } else if (sumDice <= 9) {
            return "小";
        } else {
            return "大";
        }
    }
}
